package com.bonc.ioc.dao;

import com.bonc.ioc.model.FlowRecordInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

/**
 * @author ZhangXu
 * @date 2021/4/2 10:01
 */
@Mapper
public interface FlowRecordDao {

    /**
     * 添加新的 数据资产流量历史记录
     * @param map
     * @return
     */
    Integer addFlowRecord(HashMap<String, Object> map);

    /**
     * 批量添加 数据资产 流量记录
     * @param map 总数据数量, 总数据大小, 总访问量, 总使用量
     * @return
     */
    Integer saveDataAssetStatus(HashMap<String, Object> map);

    /**
     * 更新 数据资产流量历史记录
     * @param map
     * @return
     */
    Integer updateFlowRecord(HashMap<String, Object> map);

    /**
     * 批量更新 数据资产 流量记录
     * @param map 总数据数量, 总数据大小, 总访问量, 总使用量, 记录时间, 当前时间
     * @return
     */
    Integer updateFlowRecordByRecordTime(HashMap<String, Object> map);

    /**
     * 查询 数据资产流量历史记录
     * @param map item 记录项目 1:总数量, 2:总容量, 3:访问量, 4:使用量
     *            type 记录类型 1:日度, 2:月度, 3:年度
     *            time 记录时间 对应记录类型: yyyy-MM-dd , yyyy-MM , yyyy
     * @return
     */
    List<FlowRecordInfo> selectFlowRecord(HashMap<String, Object> map);

    /**
     * 根据id删除 流量历史记录
     * @param id id
     * @param type 记录类型 1:日度, 2:月度, 3:年度
     * @return
     */
    Integer deleteFlowRecordById(@Param("id") Long id, @Param("type") Integer type);

    /**
     * 获取 过多的流量历史记录id
     * @param type 记录类型 1:日度, 2:月度, 3:年度
     * @return 历史记录ids
     */
    List<Long> selectIdByType(@Param("type") Integer type);

    /**
     * 根据ids 批量删除 流量历史记录
     * @param ids java.util.List 记录id
     * @return
     */
    Integer deleteFlowRecordByIds(@Param("ids") List<Long> ids);

}
